package com.ims.core.doc.mapper;

import java.util.List;
import java.util.Map;

import com.ims.core.doc.domain.TInCollect;
import com.ims.core.doc.domain.TInCollectEntry;

/**
 * 发票采集Mapper接口
 *
 * @author IMS
 * @date 2024-07-24
 */
public interface TInCollectMapper
{
    /**
     * 查询发票采集
     *
     * @param id 发票采集主键
     * @return 发票采集
     */
    public TInCollect selectTInCollectById(Long id);

    /**
     *
     * @param collectId
     * @return
     */
    public TInCollect selectTInCollectByCollectId(String collectId);

    /**
     * 查询发票采集列表
     *
     * @param tInCollect 发票采集
     * @return 发票采集集合
     */
    public List<TInCollect> selectTInCollectList(TInCollect tInCollect);

    /**
     * 新增发票采集
     *
     * @param tInCollect 发票采集
     * @return 结果
     */
    public int insertTInCollect(TInCollect tInCollect);

    /**
     * 修改发票采集
     *
     * @param tInCollect 发票采集
     * @return 结果
     */
    public int updateTInCollect(TInCollect tInCollect);

    /**
     * 删除发票采集
     *
     * @param id 发票采集主键
     * @return 结果
     */
    public int deleteTInCollectById(Long id);

    /**
     * 批量删除发票采集
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTInCollectByIds(Long[] ids);

    /**
     * 批量删除发票采集明细
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTInCollectEntryByCollectIds(Long[] ids);

    /**
     * 批量新增发票采集明细
     *
     * @param tInCollectEntryList 发票采集明细列表
     * @return 结果
     */
    public int batchTInCollectEntry(List<TInCollectEntry> tInCollectEntryList);


    /**
     * 通过发票采集主键删除发票采集明细信息
     *
     * @param id 发票采集ID
     * @return 结果
     */
    public int deleteTInCollectEntryByCollectId(Long id);

    /**
     * 根据采集单ID和行号查询采集明细
     * @param params
     * @return
     */
    TInCollectEntry getTInCollectEntryByCollectIdAndLineNo(Map params);

    /**
     * 更新采集明细
     * @param tInCollectEntry
     * @return
     */
    int updateTInCollectEntry(TInCollectEntry tInCollectEntry);
}
